#pragma once

#include <unordered_map>

// Channel settings
struct Channel
{
    int apid;
    int zoneWidth[6];
    int zoneHeight;
    int totalWidth;
    int oversampleZone[6];
    bool invert;
};

// All channels
static std::unordered_map<int, Channel> VIIRSChannels = {
    // M4
    {800, {800, {640, 368, 592, 592, 368, 640}, 15, 3200, {1, 2, 3, 3, 2, 1}, false}},
    // M5
    {801, {801, {640, 368, 592, 592, 368, 640}, 15, 3200, {1, 2, 3, 3, 2, 1}, false}},
    // M3
    {802, {802, {640, 368, 592, 592, 368, 640}, 15, 3200, {1, 2, 3, 3, 2, 1}, false}},
    // M2
    {803, {803, {640, 368, 592, 592, 368, 640}, 15, 3200, {1, 2, 3, 3, 2, 1}, false}},
    // M1
    {804, {804, {640, 368, 592, 592, 368, 640}, 15, 3200, {1, 2, 3, 3, 2, 1}, false}},
    // M6
    {805, {805, {640, 368, 592, 592, 368, 640}, 15, 3200, {1, 1, 1, 1, 1, 1}, true}},
    // M7
    {806, {806, {640, 368, 592, 592, 368, 640}, 15, 3200, {1, 2, 3, 3, 2, 1}, false}},
    // M9
    {807, {807, {640, 368, 592, 592, 368, 640}, 15, 3200, {1, 1, 1, 1, 1, 1}, false}},
    // M10
    {808, {808, {640, 368, 592, 592, 368, 640}, 15, 3200, {1, 1, 1, 1, 1, 1}, false}},
    // M8
    {809, {809, {640, 368, 592, 592, 368, 640}, 15, 3200, {1, 1, 1, 1, 1, 1}, false}},
    // M11
    {810, {810, {640, 368, 592, 592, 368, 640}, 15, 3200, {1, 1, 1, 1, 1, 1}, false}},
    // M13
    {811, {811, {640, 368, 592, 592, 368, 640}, 15, 3200, {1, 2, 3, 3, 2, 1}, true}},
    // M12
    {812, {812, {640, 368, 592, 592, 368, 640}, 15, 3200, {1, 1, 1, 1, 1, 1}, false}},
    // M16
    {814, {814, {640, 368, 592, 592, 368, 640}, 15, 3200, {1, 1, 1, 1, 1, 1}, true}},
    // M15
    {815, {815, {640, 368, 592, 592, 368, 640}, 15, 3200, {1, 1, 1, 1, 1, 1}, true}},
    // M14
    {816, {816, {640, 368, 592, 592, 368, 640}, 15, 3200, {1, 1, 1, 1, 1, 1}, true}},

    // I1
    {818, {818, {1280, 736, 1184, 1184, 736, 1280}, 31, 6400, {1, 1, 1, 1, 1, 1}, false}},
    // I2
    {819, {819, {1280, 736, 1184, 1184, 736, 1280}, 31, 6400, {1, 1, 1, 1, 1, 1}, false}},
    // I3
    {820, {820, {1280, 736, 1184, 1184, 736, 1280}, 31, 6400, {1, 1, 1, 1, 1, 1}, false}},
    // I4
    {813, {813, {1280, 736, 1184, 1184, 736, 1280}, 31, 6400, {1, 1, 1, 1, 1, 1}, true}},
    // I5
    {817, {817, {1280, 736, 1184, 1184, 736, 1280}, 31, 6400, {1, 1, 1, 1, 1, 1}, true}},

    // DNB
    {821, {821, {784, 488, 760, 760, 488, 784}, 15, 4064, {1, 1, 1, 1, 1, 1}, false}},
    // DNB MGS
    {822, {822, {784, 488, 760, 760, 488, 784}, 15, 4064, {1, 1, 1, 1, 1, 1}, false}},
    // DNB LGS
    {823, {823, {784, 488, 760, 760, 488, 784}, 15, 4064, {1, 1, 1, 1, 1, 1}, false}}

};